/**
 * 可变长参数其实就是数组的一种应用，我们可以指定方法的形参为一个可变长参数，
 * 实参可以根据情况动态填入一个数组，这个数组里面可以有0个或多个元素，这个数组是由调用这个参数时传入的变量组成的，相当于传入了一个或多个实参。
 */
package com.test.array;

public class Varargs {
    public static void main(String[] args) {
        test(1,2,3,4,5); //本质上上数组，所以数组里的元素类型要相同

        //本质上是数组，所以也可以直接丢个数组进去
        int[] arr2 = {6,7,8,9};
        test(10, arr2);  //直接丢个数组进去，变量分配好就行
    }

    //当想接收100个，1000个参数时，不可能像以前一样写100个，1000个int
    public static void test(int i,int... arr){  //这里定义可变长形参，以[类型... 变量名]表示，本质上是接收一个数组，
        // 可变长放在最后，java自动根据传入的变量给前面固定数量的参数分配好实参后，把后面实参组成一个数组传给可变长参数
        System.out.println(arr[0]);
//        System.out.println(arr[6]); //也会有越界访问的错误
    }
}
